package sg.nus.iss.vmcs.gui.elements;

import java.awt.Component;

/**
 * The contract for state context. 
 * To be inherited by variable displays like ButtonItemDisplay or Warning Display
 * @author Philip Chew
 *
 */
public interface VariableDisplayStateContext {
	
	/**
	 * Gets the display label (label to be set with colors)
	 * @return Label
	 */
	Component getDisplayComponent();
	
	/**
	 * Sets the state for the context
	 * @param vds Reference to a VariableDisplayState implementation
	 */
	void setVariableDisplayState(VariableDisplayState vds);
	
	/**
	 * Contract to set the colors according to the state.
	 * This method will also help to set the next state in line
	 */
	void setDisplay();
}
